package com.example.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.dto.DishDto;
import com.example.entity.Dish;

import java.util.List;

/**
 * <p>
 * 菜品管理 服务类
 * </p>
 *
 * @author czx
 * @since 2022-04-28
 */
public interface IDishService extends IService<Dish> {

    /**
     * 分页查询
     *
     * @param page 页数
     * @param pageSize 页空间
     * @param name 菜名
     * @return 分页信息
     */
    Page<DishDto> page(int page, int pageSize, String name);

    /**
     * 保存信息到dish表和dish_flavor表
     *
     * @param dishDto dish和flavor的数据传输对象
     * @return 保存结果
     */
    boolean saveWithFlavor(DishDto dishDto);

    /**
     * 根据id查询
     *
     * @param id 菜品id
     * @return 查询结果
     */
    DishDto getByIdWithFlavor(Long id);

    /**
     * 更新信息到dish表和dish_flavor表
     *
     * @param dishDto dish和flavor的数据传输对象
     * @return 更新结果
     */
    boolean updateWithFlavor(DishDto dishDto);

    /**
     * 更新菜品状态
     *
     * @param status 菜品状态
     * @return 更新结果
     */
    boolean updateByStatus(int status,Long[] ids);


    /**
     * 菜品删除
     *
     * @param ids id
     * @return 删除结果
     */
    boolean removeWithDishFlavor(List<Long> ids);

    /**
     * 查询菜品信息
     *
     * @param dish 菜品
     * @return 结果
     */
    List<DishDto> listWithDishFlavor(Dish dish);
}
